package com.yzh.design.demo;

import java.math.BigDecimal;

/**
 * 优惠券折扣计算接口
 * 优惠券类型；
 * 1. 直减券
 * 2. 满减券
 * 3. 折扣券
 * 4. n元购
 * @param <T>
 */
public interface ICouponDiscount<T> {
    /**
     * 金额计算
     * @param couponInfo    优惠信息：因为是泛型，所以可以自定义入参类型，比如直减就需要传入金额，就是String couponInfo（不用double会精度丢失）
     * @param skuPrice      消费金额
     * @return  优惠后金额
     */
    BigDecimal discountAmount(T couponInfo, BigDecimal skuPrice);
}
